// 知识点1：枚举类型使得我们可以将一组整型常量组织在一起，但是每一个枚举类型都定义了一种新的类型

// 知识点2：C++11新标准引入了限定作用域的枚举类型，带有class或struct关键字的，就是限定作用域的枚举类型，形式为enum
// (class/struct) XX { 枚举成员
// }；，注意后面需要加分号结尾，若enum没有名字，那么我们只能在定义时初始化该对象

// 知识点3：在限定作用域的枚举类型中，遵循常规的作用域准则，在枚举类型作用域外不可访问，不限定作用域的枚举类型，枚举成员的作用域和枚举类型本身的作用域相同（一般来说两个不限定作用域的枚举类型的成员不可以相同，因为其作用域是相同的，会重复定义）

// 知识点4：默认情况下，枚举成员的枚举值从0开始，依次加1，但我们也可以为枚举成员指定初值

// 知识点5：枚举成员是const的，所以赋值时必须使用常量表达式

// 知识点6：要想初始化一个enum对象或者为enum赋值，必须使用该类型的一个枚举成员或者该类型的另一个对象，不限定作用域的枚举类型的对象或其枚举成员会自动转换为整形

// 知识点7：C++11新标准，可以在enum之后加上冒号再加上我们想在enum中使用的类型：enum：unsigned
// int ｛｝，默认情况下为int。可以先声明不定义

// 知识点8：成员指针是指可以指向类的非静态成员的指针，由于类的静态成员不属于任何对象，所以无需特殊的指向该成员的指针，成员指针的类型需要包括类的类型和成员的类型，例如：const
// string Screen:: *p，一个指向Screen类的const string成员的指针p

// 知识点9：在给成员指针赋值时，我们将取址运算符作用域screen的成员而不是内存中的一个类的对象的成员

// 知识点10：我们需要注意，当我们初始化一个成员指针或为成员指针赋值时，该指针并没有指向任何数据，成员指针只指定了成员而非该成员所属的对象，只有解引用成员指针时我们才提供对象的信息

// 知识点11：成员指针的访问运算符：.*或者->*，可以获得对象的指定成员

// 知识点12：由于在类中数据成员一般都是私有类型的，所以通常我们不能直接获得数据成员的指针，最好的方法就是定义一个函数，返回一个指向该成员的指针（return
// &XX）

// 答案：见知识点8、9、10、11
